package com.zty.xiaomiadmin.server.Controller;

import com.zty.xiaomiadmin.server.Dto.GetServiceOrderInfoDto;
import com.zty.xiaomiadmin.server.Dto.UpdateServiceOrderStatusDto;
import com.zty.xiaomiadmin.server.Entity.ServiceOrder.ServiceOrder;
import com.zty.xiaomiadmin.server.Service.ServiceOrder.ServiceOrderServiceImp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.io.IOException;
import java.util.List;

@CrossOrigin
@RestController
@RequestMapping("serviceOrder")
public class ServiceOrderController {

    @Autowired
    private ServiceOrderServiceImp serviceOrderServiceImp;

    @RequestMapping("/getServiceOrder")
    private GetServiceOrderInfoDto getServiceOrder(@RequestParam("pageIndex") int pageIndex,
                                               @RequestParam("pageSize") int pageSize) throws IOException {
        GetServiceOrderInfoDto getServiceOrderInfoDto = new GetServiceOrderInfoDto();
        List<ServiceOrder> list = serviceOrderServiceImp.getServiceOrder(pageIndex, pageSize);
        if (list.size() == 0) {
            getServiceOrderInfoDto.setMsg("暂无信息！");
            getServiceOrderInfoDto.setStatus("400");
        } else {
            getServiceOrderInfoDto.setList(list);
            getServiceOrderInfoDto.setStatus("200");
        }
        return getServiceOrderInfoDto;
    }


    @RequestMapping("/getServiceOrderByStatusAndStoreId")
    private GetServiceOrderInfoDto getServiceOrderByStatusAndStoreId(@RequestParam("pageIndex") int pageIndex,
                                               @RequestParam("pageSize") int pageSize,
                                               @RequestParam("status") int status,
                                               @RequestParam("store_id") int store_id) throws IOException {
        GetServiceOrderInfoDto getServiceOrderInfoDto = new GetServiceOrderInfoDto();
        List<ServiceOrder> list = serviceOrderServiceImp.getServiceOrderByStatusAndStoreId((pageIndex-1) * pageSize, pageSize, status, store_id);
        if (list.size() == 0) {
            getServiceOrderInfoDto.setMsg("暂无申请售后的信息！");
            getServiceOrderInfoDto.setStatus("400");
        } else {
            getServiceOrderInfoDto.setList(list);
            getServiceOrderInfoDto.setStatus("200");
        }
        return getServiceOrderInfoDto;
    }

    @RequestMapping("/getServiceOrderByStoreId")
    private GetServiceOrderInfoDto getServiceOrderByStoreId(@RequestParam("pageIndex") int pageIndex,
                                                           @RequestParam("pageSize") int pageSize,
                                                           @RequestParam("store_id") int store_id) throws IOException {
        GetServiceOrderInfoDto getServiceOrderInfoDto = new GetServiceOrderInfoDto();
        List<ServiceOrder> list = serviceOrderServiceImp.getServiceOrderByStoreId((pageIndex-1) * pageSize, pageSize,store_id);
        if (list.size() == 0) {
            getServiceOrderInfoDto.setMsg("暂无申请售后的信息！");
            getServiceOrderInfoDto.setStatus("400");
        } else {
            getServiceOrderInfoDto.setList(list);
            getServiceOrderInfoDto.setStatus("200");
        }
        return getServiceOrderInfoDto;
    }

    @RequestMapping("/updateServiceOrderById")
    private UpdateServiceOrderStatusDto updateServiceOrderStatusById(@RequestParam("id") int id,
                                               @RequestParam("status") int status,
                                               @RequestParam("store_reply") String store_reply) throws IOException {
        UpdateServiceOrderStatusDto updateServiceOrderStatusDto = new UpdateServiceOrderStatusDto();
        int num = serviceOrderServiceImp.updateServiceOrderStatusById(id,status,store_reply);
        if (num == 1) {
            updateServiceOrderStatusDto.setMsg("处理成功");
            updateServiceOrderStatusDto.setStatus("200");
        } else {
            updateServiceOrderStatusDto.setMsg("处理失败");
            updateServiceOrderStatusDto.setStatus("400");
        }
        return updateServiceOrderStatusDto;
    }
}
